package org.jeecg.modules.hc.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.hc.entity.HcCommodity;
import org.jeecg.modules.hc.entity.HcMerchantCommission;

/**
 * @Description: 商品
 * @Author: jeecg-boot
 * @Date:   2022-12-13
 * @Version: V1.0
 */
public interface IHcCommodityService extends IService<HcCommodity> {

    /**
     * 设置库存
     * @param param
     */
    void setLimitBuy(HcCommodity param);

    /**
     * 获取当天库存
     * @param param
     * @return
     */
    Integer getRemainingQuantity(HcCommodity param);

    /**
     * 校验商品数据是否填写正确
     * @param hcCommodity
     */
    void checkCommodity(HcCommodity hcCommodity);

    /**
     * 设置商品信息
     * @param param 商品对象
     * @param hcMerchantCommission 佣金
     */
    void setInformation(HcCommodity param, HcMerchantCommission hcMerchantCommission);

    IPage<HcCommodity> pageList(Page<HcCommodity> page, HcCommodity param);

    /**
     * 校验规格，并且根据地址id获取佣金，返回价格
     * @param param 商品对象
     * @param addressId 地址id
     * @param specificationsName 用户选择的规格
     * @return
     */
    HcCommodity checkSpecifications(HcCommodity param, String addressId, String specificationsName);

    /**
     * 校验规格，并且根据地址id获取佣金，返回价格
     * @param param 商品对象
     * @param addressId 地址id
     * @param specificationsName 用户选择的规格
     * @return
     */
    HcCommodity checkSpecificationsNew(HcCommodity param, String addressId, String specificationsName);
}

